package com.zeronx.utils;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.BufferedImageHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;

import javax.annotation.PostConstruct;
import java.util.List;

/**
 * @author foreee on 2017/3/30.
 * @version 1.0
 */
//@Configuration
//public class MyWebConfig extends WebMvcConfigurerAdapter {
//
//    @Bean
//    public MyJsonMessageConverter myJsonMessageConverter() {
//        MyJsonMessageConverter jsonConverter = new MyJsonMessageConverter();
//        return jsonConverter;
//    }
//
//    @Override
//    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
//        converters.add(myJsonMessageConverter());
//        super.configureMessageConverters(converters);
//    }
////    @Override
////    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
////        converters.add(customJackson2HttpMessageConverter());
////        super.addDefaultHttpMessageConverters(converters);
////    }
//
//}

//@Configuration
//@Component
public class MyWebConfig { //extends WebMvcConfigurationSupport {

//    @Bean
//    public HttpMessageConverter customJackson2HttpMessageConverter() {
//        MyJsonMessageConverter jsonConverter = new MyJsonMessageConverter();
//        ObjectMapper objectMapper = new ObjectMapper();
//        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//        jsonConverter.setObjectMapper(objectMapper);
//        return jsonConverter;
//    }
//
//    @Override
//    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//        converters.add(customJackson2HttpMessageConverter());
//        super.addDefaultHttpMessageConverters(converters);
//    }
//    @Autowired
//    private RequestMappingHandlerAdapter adapter;
//
//    @PostConstruct
//    public void initStuff() {
//        List<HttpMessageConverter<?>> messageConverters = adapter.getMessageConverters();
//        MyJsonMessageConverter imageConverter = new MyJsonMessageConverter();
//        messageConverters.add(0,imageConverter);
//    }
}
